# 作者: 薛文寅仟
# 2025年01月01日10时30分10秒
# 5443912@qq.com
import os


def seek_start():
    """
    相对于开头（文件起始位置）进行偏移
    :return:
    """
    file = open('file1', mode='r+', encoding='utf8')
    file.seek(5, os.SEEK_SET)  # 相对于开头偏移5个字节，注意汉字的偏移是3的整数倍
    text = file.read(5)
    print(text)
    file.close()


def seek_end():
    """
    相对于文件末尾进项偏移
    文本模式下 offset 只能为非负值，往后移
中间，或者尾部的相对位置时，只能是 0
汉字偏移要是 3 的倍数
    :return:
    """
    file = open('file1', mode='r+', encoding='utf8')
    file.seek(0, os.SEEK_END)
    text = file.read(5)
    print(text)  # 读不到内容，是空字符串,所以对文本模式来说SEEK_END和SEEK_CUR很鸡肋
    file.close()


def seek_cur():
    """
    相对于当前位置不动
    :return:
    """
    file = open('file1', mode='r+', encoding='utf8')
    file.seek(0, os.SEEK_CUR)
    text = file.read(5)
    print(text)  # 读不到内容，是空字符串
    file.close()

def seek_b_cur():
    """
    在b模式下，读取到的是字节流，读取图片，音频，视频
    :return:
    """
    file =open('file1',mode='rb+')
    file.seek(5, os.SEEK_CUR)
    file.seek(-2, os.SEEK_CUR)
    # file.seek(-3, os.SEEK_END)
    b=file.read()   #得到的是字节//流
    print(b)
    file.close()




if __name__ == '__main__':
    # seek_start()
    # seek_end()
    # seek_cur()
    seek_b_cur()
